package com.tadu.day02.test;

/**
 *                         普通类   抽象类     接口类
 *                        【关系】             【特点】
 *       类与类             继承            只能单继承，可多层继承
 *       类与抽象类          继承            可以单继承，不可以多继承
 *       抽象类与抽象类       继承             只能单继承，可多层继承
 *       类与接口           实现              可以单继承，也可以多实现
 *                                           并且继承同时实现多个接口
 *       接口与接口          继承               可以单继承，可以多继承
 */
/*作业1：抽象类与接口区别和关系？简答*/
//区别：1.抽象类实例化方法：继承----子类----调方法【造型】
//       接口类实例化方式：实现impeachments------实现类----调方法【造型】
//     2.抽象类使用extends继承，一个类只能继承一个抽象类
//        接口使用implements实现，可以实现多个接口
//      3.抽象类关键字为Abstract
//         接口关键字为interface
//      4.抽象类中可以有普通成员变量
//         接口的成员变量默认为public static final
//      5.抽象类存在构造器，并且有构造方法
//         接口没有构造方法
//      6.抽象类中抽象方法没有具体体现
//        接口的抽象方法：修饰符 abstract 返回值  方法名（）；
//          public abstract void jack（）；
//      7.抽象类中可以有抽象方法和非抽象方法，可以有不同修饰符
//         接口中的方法默认都是抽象的，用public修饰
//      8.抽象类可以有内部类
//         接口不能有非静态内部类
//       关系：
//       1.都不能直接被实例化，需要子类去实现
//        2.都包含抽象方法，需要子类去实现
//        3.都可以提高代码的灵活性，促进代码的使用




//5.接口与接口：     继承 ----    可以单继承，可以多继承
interface Loo{}     interface Foo{}
interface Voo extends Loo,Foo{}


//4.类与接口：实现----可以单继承，也可以多实现，并且继承同时实现多个接口
/**interface Loo{}     interface Foo{}
class Joo{}
class Voo extends Joo implements Loo,Foo{}*/


//3.抽象类与抽象类：继承---只能单继承，可多层继承
/**abstract class Loo{}
abstract class Uoo extends Voo{}
abstract class Voo extends Loo{}*/

//2.类与抽象类：继承----可以单继承，不可以多继承
//abstract class Uoo{}    abstract class Voo{}
    //class Loo extends Uoo,Voo{}

//1.类与类：继承------单继承,可以多层继承
/**class Uoo{}
class Loo extends Uoo{}
class Voo extends Loo{}*/













public class 关系 {
}
